﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Medianamik.Core.Interfaces;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Globalization;

namespace Medianamik.Core.Querying
{
    public class QueryDefinition : IQueryDefinition
    {
        #region IQueryDefinition Members

        Collection<NodeWhere> _nodeWheres = new Collection<NodeWhere>();
        public Collection<NodeWhere> NodeWheres
        {
            get
            {
                return _nodeWheres;
            }
        }

        Collection<PropertyWhere> _propertyWheres = new Collection<PropertyWhere>();
        public Collection<PropertyWhere> PropertyWheres
        {
            get
            {
                return _propertyWheres;
            }
        }

        Collection<NodeTypeWhere> _nodeTypeWheres = new Collection<NodeTypeWhere>();
        public Collection<NodeTypeWhere> NodeTypeWheres
        {
            get
            {
                return _nodeTypeWheres;
            }
        }

        Collection<NodeOrderBy> _nodeOrderBy = new Collection<NodeOrderBy>();
        public Collection<NodeOrderBy> NodeOrderByCollection
        {
            get { return _nodeOrderBy; }
        }

        CultureInfo _modificationCulture = null;
        public CultureInfo ModificationCulture
        {
            get
            {
                return _modificationCulture;
            }
            set
            {
                _modificationCulture = value;
            }
        }


        public int SkipCount
        {
            get;
            set;
        }

        private int _takeCount = int.MaxValue;
        public int TakeCount
        {
            get { return _takeCount; }
            set { _takeCount = value; }
        }

        public bool LazyLoading
        {
            get;
            set;
        }



        #endregion
    }
}
